home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CRESC / Lengths / length-repeat < prev    next >
Lisp/Scheme  |  1996-12-31  |  851b  |  25 lines

  1. length-repeat div-number pattern &optional length
  2.  
  3. This is a note-length equivalent to symbol-repeat. It divides the note length values with <div-number> and adds the appropriate number of extra note-lengths to equal the original note-length.
  4.  
  5. (setq rhy '(1/4 1/16 1/8 1/16))
  6.  
  7. (setq var1 (length-repeat 2 rhy))
  8. --> (1/8 1/8 1/32 1/32 1/16 1/16 1/32 1/32)
  9.  
  10. (setq var2 (length-repeat 4 rhy))
  11. --> (1/16 1/16 1/16 1/16 1/64 1/64 1/64 1/64 1/32 1/32 1/32 
  12.      1/32 1/64 1/64 1/64 1/64)
  13.  
  14. If the optional length is supplied then it is identified and processed and other lengths remain untouched.
  15.  
  16. (setq rhy '(1/4 1/16 1/8 1/16))
  17.  
  18. (setq var1 (length-repeat 4 rhy '1/8))
  19. --> (1/4 1/16 1/32 1/32 1/32 1/32 1/16)
  20.  
  21. Try this function nested several times:
  22.  
  23. (setq var2 (length-repeat 2 (length-repeat 4 rhy '1/8) '1/4))
  24. --> (1/8 1/8 1/16 1/32 1/32 1/32 1/32 1/16)
  25.